class MusicPlayer():
    
    # 记录第一个被创建对象的引用
    instance = None
    # 记录是否执行过初始化方法
    init_flag = False
    
    def __new__(cls,*args,**kwargs):
        # 判断类属性是否是空对象
        if cls.instance is None:
            # 调用父类的方法，为第一个对象调用空间
            cls.instance = super().__new__(cls)
        # 返回类属性保存的对象引用
        return cls.instance

    # 让初始化的动作只被执行一次
    def __init__(self):
        if MusicPlayer.init_flag:
            return
        print("初始化播放器")
        MusicPlayer.init_flag = True


player1 = MusicPlayer()
print(player1)

player2 = MusicPlayer()
print(player2)